EXP_MULT_01
===========

Objective: Evaluate the ability of creating simulated link failures that affect traffic flows as perceived by applications
inside a sliver.

Experiment: Initiate an UDP echo application and create a simulated path failure (in the path used by the traffic of the
application). When REAP is deactivated, check that the application traffic is disrupted.

Result: Succeed

Setup: Two Onelab nodes involved, one using address 163.117.140.132 (onelab3) and the other using address 163.117.140.167
(onelab5). The experiment is run without the dumyshim module. Dumyshim module takes care of modifying the path used by a
communication when there is a failure in the path used by the application and REAP finds an available alternative path. 
Without this module, the multihoming component cannot recover from a failure.

Files:

** EXP_MULT_01/capture_udpecho_disruptive_failure.pcap

Wireshark file of the traffic sniffered during the experiment. Echo messages are sent from 163.117.140.132 every one second and
replied from 163.117.140.167. The echo application works by sending 20 messages with a text entered by the user, waiting for
another text entered by the user to send another 20 messages, and so on. If a reply to an echo is not received a timeout
failure is shown in the screen. The experiment starts by the user entering the text "without failure" (second 0 of the
experiment). 20 messages and their replies can be seen in the thaffic capture. Then a simulated failure command is issued. A
new text is entered in the UDP client ("with failure"), and 20 messages are sent, but this is not shown in the capture because
messages don't go through due to the simulated failure. A command to cancel the simulated failure is issued. The text "without
failure" is introduced in the UDP client and 20 messages are sent and the reply received (these messages appear in the capture
between seconds 69 and 88). A new text ("with failure in the middle") in entered in the UDP client, so 20 messages are sent.
The first three messages and their replies go through (starting at second 95) as can be seen in the capture. A simulated
failure command is issued at that point interrupting this message exchange.  


** EXP_MULT_01/Screenshots/echoudpclient.png  and EXP_MULT_01/Screenshots/echoudpclient_02.png

Screens of running the UDP echo client in a sliver of 163.117.140.132. The application is started to send 20 echo messages to
163.117.140.167, with 1 second between messages, each time a text is entered. First text entered is "without failure", so 20
messages are sent and the echo reply received. New text entered: "with failure" so 20 messages are sent but their reply is not
received (timeout). This is because a simulated failure command was issued before writing the text. Then, after cancelling the
simulated failure, a new text is entered ("without failure") and 20 messages are sent and their reply received. Finally a new
text is entered: "with failure in the middle", so 20 messages are sent. Three replies are received and then a simulated failure
command interrupts the traffic.


** EXP_MULT_01/Screenshots/echoudpserver.png and EXP_MULT_01/Screenshots/echoudpserver_02.png 

The corresponding screens of the udp echo server launched in a sliver of 163.117.140.167.


** EXP_MULT_01/Screenshots/onelab3root1.png and EXP_MULT_01/Screenshots/onelab5root.png

Screen of onelab3 and onelab5 showing the start of the reapd daemon. The reapd daemon provides an interface to the user to
control the multihoming component behaviour. In this case, the user request simulated failures. The simulated failure command
acts as a flag, so the first time is issued a failure is created, the second time the failure is removed, and so on.


**  EXP_MULT_01/Screenshots/onelab3root2.png and EXP_MULT_01/Screenshots/onelab5root2.png

Screen of onelab3 and onelab5 showing the start of the dumyshimd daemon. Dumyshimd daemon takes care of creating and removing
simulated failures under request from the reapd daemon, and launches the dumyshim module that takes care of changing the path
used in a communication. Note that dumyshim module is not present in this experiment so an error message is presented when the
dumyshimd daemon tries to launch it. 




